package com.lxh.lxhcrm.controller;

import com.lxh.lxhcrm.model.pojos.*;
import com.lxh.lxhcrm.model.service.DataDictionaryService;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;
import java.util.Map;

/**
 * @author ：鞠玮
 * 开发团队 ：lxh
 * 开发时间 ：2020/1/30 16:09
 * 类的名称 ：DataDictionaryController
 * 类的描述 ：数据字典
 */
@RestController
@RequestMapping("dd")
@CrossOrigin
public class DataDictionaryController {
    @Resource
    DataDictionaryService dds;

    /**
     * 获取启用的票据类型
     * @return List<InvType>
     */
    @GetMapping("/invType")
    public List<InvType> getInvType(){
        return dds.getInvType();
    }

    /**
     * 获取付款方式
     * @return 付款方式列表
     */
    @GetMapping("/paymentMethods")
    public List<PaymentMethod> getPayment(){
        return dds.getPayment();
    }


    /**
     * 获取已经启用的回款期次
     * @return List<ReturnTimes> 回款期次列表
     */
    @GetMapping("return_times")
    public List<ReturnTimes> getReturnTimes(){
        return dds.getReturnTimes();
    }

    /**
     * 获取已经启用的交付期次
     * @return List<DeliveryTimes>:交付期次列表
     */
    @GetMapping("/delivery_time")
    public List<DeliveryTimes> getDeliveryTime(){
       return dds.getDeliveryTimeByIsOn();
    }
    /**
     * 获取已经启用的合同状态
     * @return List<ConState>:合同状态列表
     */
    @GetMapping("/conStates")
    public List<ConState> getConState(){
        return dds.getConStateByIsOn();
    }
    /**
     * 新增数据
     * @param map:数据map对象
     */
    @PostMapping("/classify")
    public void addClassify(@RequestBody Map<String,Object> map){
        dds.addClassify(map);
    }

    /**
     * 删除数据
     * @param map:数据对象
     */
    @DeleteMapping(value = "/classify")
    public void delete(@RequestBody Map<String,Object> map){
        System.out.println(map);
        dds.deleteClassify(map);
    }
    /**
     * 所有数据字典
     * @return
     */
    @GetMapping("/ddics")
    public List<DataDictionary> dataDictionaries(){
        return dds.queryDdic();
    }

    /**
     * 表格中所有数据
     * @param ddic DataDictionary
     * @return List<Map<String, String>>
     */
    @GetMapping("/classifies")
    public List<Map<String, Object>> classifies(DataDictionary ddic){
        return dds.queryClassify(ddic);
    }

    /**
     * 修改数据
     * @param map
     */
    @PutMapping("/classify")
    public void classify(@RequestBody Map<String,Object> map){
        dds.updateClassify(map);
    }

    /**
     * 查询所有的模板
     * @return List<PrintTemplate>
     */
    @GetMapping("/printTemplates")
    public List<PrintTemplate> getAllPrintTemplate(){
        return dds.getAllPrintTemplate();
    }

    /**
     * 根据模板id查询模板
     * @param templateId 模板id
     * @return 模板对象
     */
    @GetMapping("/printTemplate/{templateId}")
    public PrintTemplate getPrintTemplateById(@PathVariable int templateId){
        return dds.getPrintTemplateById(templateId);
    }

    /**
     * 模板的新增和修改
     * @param printTemplate 模板对象
     */
    @PostMapping("/printTemplate")
    public void savePrintTemplate(@RequestBody  PrintTemplate printTemplate){
        dds.savePrintTemplate(printTemplate);
    }

    /**
     * 模板的删除
     * @param templateId 模板编号
     */
    @DeleteMapping("/printTemplate/{templateId}")
    public void deletePrintTemplate(@PathVariable int templateId){
        dds.deletePrintTemplate(templateId);
    }
}
